System and method for providing server status awareness

ABSTRACT

A method including analyzing one or more network interactions of a user. One or more servers associated with the one or more network interaction may be identified. A listing of at least a portion of the one or more servers may be rendered.

TECHNICAL FIELD

This disclosure relates to autonomic processes and, more particularly,to autonomic processes for providing server status awareness.

BACKGROUND

Situations often arise in which a user of an application is frustratedbecause mission critical applications become unavailable, experienceinterruptions or are otherwise affected. Users may not know that thereis a problem with a server until they try to use it. There is often asolution available, but users may not know what that solution is or howto implement it. Thus, there exists a need for a method of providingserver status awareness and solution instructions.

SUMMARY OF THE DISCLOSURE

In a first implementation, a method includes analyzing one or morenetwork interactions of a user. One or more servers associated with theone or more network interaction may be identified. A listing of at leasta portion of the one or more servers may be rendered.

One or more of the following features may be included. The one or morenetwork interactions may include one or more of: application usage,database usage, mail server access, and instant messaging server access.

Rendering a listing of at least a portion of the one or more servers mayinclude providing a server group listing in an instant messaging userinterface, the server group listing including the at least a portion ofthe one or more servers. An indicator of a status of the at least aportion of the one or more servers may be provided. The status of the atleast a portion of the one or more servers may be updated. The statusmay be provided in the form of a color-coded server listing.

If the status is a server problem status, at least one corrective actioninstruction may be provided. The at least one corrective actioninstruction may be provided in the form of a hover-over message. If thestatus is a server problem status, the user may be notified. Notifyingthe user may include providing at least one corrective actioninstruction.

According to another implementation, a computer program product mayreside on a computer readable medium, which may have a plurality ofinstructions stored thereon. When executed by a processor, theinstructions cause the processor to perform operations includinganalyzing one or more network interactions of a user. The instructionsfurther cause the processor to identify one or more servers associatedwith the one or more network interaction. The instructions further causethe processor to render a listing of at least a portion of the one ormore servers.

One or more of the following features may be included. The one or morenetwork interactions may include one or more of: application usage,database usage, mail server access, and instant messaging server access.

Rendering a listing of at least a portion of the one or more servers mayinclude providing a server group listing in an instant messaging userinterface, the server group listing including the at least a portion ofthe one or more servers. The instructions may further cause theprocessor to provide an indicator of a status of the at least a portionof the one or more servers. The instructions may further cause theprocessor to update the status of the at least a portion of the one ormore servers. The status may be provided in the form of a color-codedserver listing.

If the status is a server problem status, at least one corrective actioninstruction may be provided. The at least one corrective actioninstruction may be provided in the form of a hover-over message. If thestatus is a server problem status, the user may be notified. Notifyingthe user may include providing at least one corrective actioninstruction.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 diagrammatically depicts a server status awareness processcoupled to a distributed computing network.

FIG. 2 is a flowchart of a process executed by the server statusawareness process of FIG. 1.

FIG. 3 is a diagrammatic view of a user interface rendered by the serverstatus awareness process of FIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

System Overview:

Referring to FIG. 1, there is shown server status awareness process 10that may reside on and may be executed by server computer 12, which maybe connected to network 14 (e.g., the Internet or a local area network).Examples of server computer 12 may include, but are not limited to: apersonal computer, a server computer, a series of server computers, amini computer, and a mainframe computer. Server computer 12 may be a webserver (or a series of servers) running a network operating system,examples of which may include but are not limited to: Microsoft WindowsXP Server™; Novell Netware™; or Redhat Linux™, for example. Inaddition/as an alternative, server status awareness process 10 mayreside on and may be executed by one or more client electronic devices,such as a personal computer, notebook computer, personal digitalassistant, and data enable cellular phone, for example.

As will be discussed below in greater detail, server status awarenessprocess 10 may analyze one or more network interactions of a user. Oneor more servers associated with the one or more network interaction maybe identified and a listing of at least a portion of the one or moreservers may be rendered.

The instruction sets and subroutines of server status awareness process10, which may be stored on storage device 16 coupled to server computer12, may be executed by one or more processors (not shown) and one ormore memory architectures (not shown) incorporated into server computer12. Storage device 16 may include but is not limited to: a hard diskdrive; a tape drive; an optical drive; a RAID array; a random accessmemory (RAM); and a read-only memory (ROM).

Server computer 12 may execute a web server application, examples ofwhich may include but are not limited to: Microsoft IIS™, NovellWebserver™, or Apache Webserver™, that allows for HTTP (i.e., HyperTextTransfer Protocol) access to server computer 12 via network 14. Network14 may be connected to one or more secondary networks (e.g., network18), examples of which may include but are not limited to: a local areanetwork; a wide area network; or an intranet, for example.

Additional server computers may be connected to network 14, such asemail server 20, instant messaging server 22, and database server 24.The instruction sets and subroutines of server applications (e.g., emailserver application 26, instant messaging server application 28, anddatabase server application 30) which may be stored on storage devices32, 34, 36 (respectively) coupled to additional server computers 20, 22,24 (respectively), may be executed by one or more processors (not shown)and one or more memory architectures (not shown) incorporated intoadditional server computers 20, 22, 24 (respectively). Storage devices32, 34, 36 may include but are not limited to: hard disk drives; tapedrives; optical drives; RAID arrays; random access memories (RAM);read-only memories (ROM), compact flash (CF) storage devices, securedigital (SD) storage devices, and a memory stick storage devices.

Users 38, 40 may utilize server status awareness process 10 through thedevice on which client applications 46, 48 (e.g., email clientapplication, instant messaging client application, database clientapplication) are executed, namely client electronic devices 42, 44(e.g., personal computers, notebook computers, personal digitalassistants, and data enable cellular phones), for example. Clientapplications may be stored on storage devices 50, 52. Storage devices50, 52 may include but are not limited to: hard disk drives; tapedrives; optical drives; RAID arrays; random access memories (RAM);read-only memories (ROM), compact flash (CF) storage devices, securedigital (SD) storage devices, and a memory stick storage devices. Users38, 40 may utilize server status awareness process 10 directly throughnetwork 14 or through secondary network 18. Further, server computer 12(i.e., the computer that executes server status awareness process 10)may be connected to network 14 through secondary network 18, asillustrated with phantom link line 54.

As mentioned above, the server status awareness process may reside onand may be executed, in whole or in part, by a client electronic device(e.g., client electronic devices 42, 44). As a client-side process, theserver status awareness process may be a stand-alone application, mayinterface with one or more client application (e.g., client applications46, 48), and/or may be an applet/application that may be executed withina client application (e.g., client applications 46, 48). As such, theserver status awareness process may be a client-side process, a serverside process, or a hybrid client-side/server-side process.

The various client electronic devices (e.g., client electronic device42, 44) may be directly or indirectly coupled to network 14 (or network18). For example, notebook computer 42 is shown wirelessly coupled tonetwork 14 via wireless communication channel 56 established betweenlaptop computer 40 and a wireless access point (i.e., WAP) 58, directlycoupled to network 14. WAP 58 may be, for example, an IEEE 802.11a,802.11b, 802.11g, Wi-Fi, and/or Bluetooth device that is capable ofestablishing wireless communication channel 56 between laptop computer40 and WAP 58. Further, personal computer 44 is shown directly coupledto network 14 via a hardwired network connection.

As is known in the art, all of the IEEE 802.11x specifications may useEthernet protocol and carrier sense multiple access with collisionavoidance (i.e., CSMA/CA) for path sharing. The various 802.11xspecifications may use phase-shift keying (i.e., PSK) modulation orcomplementary code keying (i.e., CCK) modulation, for example. As isknown in the art, Bluetooth is a telecommunications industryspecification that allows e.g., mobile phones, computers, and personaldigital assistants to be interconnected using a short-range wirelessconnection.

Client electronic devices 42, 44 may each execute an operating system,examples of which may include but are not limited to Microsoft Windows™,Microsoft Windows CE™, Redhat Linux™, or a custom operating system.

Server Status Awareness Process

Referring also to FIG. 2, server status awareness process 10 may analyze100 one or more network interactions of a user. Server status awarenessprocess 10 may also identify 102 one or more servers associated with theone or more network interactions of the user. Additionally, serverstatus awareness process 10 may render 104 a listing of at least aportion of the one or more servers.

For example, during the course of a user's daily activities, the usermay access various applications in order to work on projects andcommunicate with co-workers and other contacts. Server status awarenessprocess 10 may track and analyze 100 the user's the users networkinteractions, e.g., based upon, at least in part, application usage andother access to resources on the network, such as networks 14, 18. Theone or more network interactions analyzed 100 by server status awarenessprocess 10 may include application usage, database usage, mail serveraccess, and instant messaging server access.

Server status awareness process 10 may identify 102 one or more serversassociated with the one or more network interaction. Continuing with theabove stated example, server status awareness process 10 may identify102, for example, email server 20 accessed by user 40 for sending andreceiving email, instant messaging server 22 accessed by user 40 forsending and receiving instant messages, and database server 24 accessedby user 40 for retrieving and/or saving documents. Server statusawareness process 10 may also identify 102 any other servers that user40 may interact with on network 14, 18. In the foregoing manner, serverstatus awareness process 10 may provide an awareness of the servers withwhich a user interacts.

Server status awareness process 10 may update (e.g., continuously and/orperiodically) the servers identified 102 as being accessed and/orinteracted with by the user. For example, user 40 may initially have nonetwork interactions (e.g., all usage of client electronic device 44 mayinvolve only local resources). As such, server status awareness process10 may not identify 102 any servers. User 40 may at some point utilizean email application that may interact with email server 20 over network14, 18. Server status awareness process 10 may analyze the networkinteraction with email server 20 and identify email server 20 as aserver used by user 40. Server status awareness process 10 mayaccordingly update (e.g., at the time of interaction or some timethereafter) an awareness of identified 102 server interactions for user40 to include email server 20. Server interactions for user 40 may bereflected, e.g., in server usage profile 58 a, 58 b for user 40, whichmay be stored on client electronic device 44 and/or one or more server(e.g., server computer 12).

Similarly, user 40 may engage in an instant messaging chat with user 38,e.g., utilizing instant messaging server 22 over network 14, 18. Serverstatus awareness process 10 analyze the network interaction (i.e., theinstant messaging exchange) and identify 102 instant messaging server 22as s server accessed/interacted with by user 40. Server status awarenessprocess 10 may, therefore, update (e.g., at the time of interaction, orsome time thereafter) an awareness of identified 102 server interactionsfor user 40 to include instant messaging server 22 (e.g., reflected inserver usage profile 58 a, 58 b).

In a corresponding manner, server status awareness process 10 may update(e.g., periodically, continuously) server usage profile 58 a, 58 b toremove any servers that have not been associated with a recent networkinteraction of user 40 (e.g., non-usage). Removing servers notassociated with a recent network interaction may occur after apredetermined period of non-usage. The period of non-usage may be set byuser 40, by a network administrator, or other user. For example, user 40may have at some point in time interacted with database server 24.Server status awareness process 10 may have analyzed 100 the networkinteractions of user 40 and identified 102 database server 24 as aserver associated with the network interactions of user 40. User 40 mayhave subsequently not interacted with database server 24 for thepredetermined period of time (e.g., a week, a month, a year, or anyother predetermined time period). Server status awareness process 10 mayremove database server 24 from server usage profile 58 a, 58 bassociated with user 40 based upon, at least in part, the non-usage ofdatabase server 24 for the predetermined period of time. Database server24 may be re-added to server usage profile 58 a, 58 b in the event offuture interaction with database server 24 by user 40.

As described above, the servers identified 102 by server statusawareness process 10 (e.g., and reflected in server usage profile 58 a,58 b) may be dependent upon analyzed 100 network interactions of user40. As such, the servers identified 102 for user 40 (e.g., and reflectedin server usage profile 58 a, 58 b) may be different than the serversidentified for another user (e.g., based upon, at least in part,differing network interactions including different servers associatedwith the differing network interactions).

Server status awareness process 10 may, alone in or conjunction with oneor more client applications (e.g., client application 46, 48) render 104a listing of at least a portion of the one or more servers identified(e.g., email server 20 running email server application 26, instantmessaging server 22 running instant messaging server application 28, anddatabase server 24 running database server application 30). For example,the listing may list at least one server which has been utilized by userrecently or which user is currently utilizing by, for example,communicating through an instant messaging application. Alternatively,the listing may include at least one server, which user is about toutilize based upon user's current application usage, for example, ifuser is typing an email for which email server will be utilized whenuser is ready to send the email. Such listing may be rendered 104 byserver status awareness process 10 in a stand-alone interface (notshown) or via an interface provided by, or conjunction with, an existingapplication accessed by user.

For example, and referring also to FIG. 3, server status awarenessprocess 10 and/or an instant messaging application (e.g., clientapplication 48), may render instant messaging interface 150.Additionally, server status awareness process 10 and/or the instantmessaging application may render 104 a listing of servers (e.g., thatmay be interacted with by user 40 via network 14, 18) that may includeproviding 106 a server group listing 152 in instant messaging userinterface 150. The server group listing 152 may include a listing of atleast a portion of the one or more servers (e.g., email server 20,instant messaging server 22, and database server 24) interacted with byuser 40. For example, just as an instant messaging client applicationmay provide a listing of frequent contacts in an instant messaging userinterface, a server group listing 152 may be provided in instantmessaging user interface 150.

Server status awareness process 10 may provide 108 an indicator of astatus of at least a portion of the one or more servers. For example,server status awareness process 10 may provide 108 an indication ofwhether the server is functioning normally, experiencing a temporaryoutage, experiencing heavy traffic and functioning slowly, undermaintenance or any other status that may be relevant to the specificserver. Continuing with the above stated example, server status process10 and/or instant messaging client application may provide a graphicalindicator 154 (e.g., a double asterisks indicating a status alert) fordatabase server 24 in instant messaging user interface 150. Variousother indicators may be used to indicate server status, includinggraphical and text based indicators.

Server status awareness process 10 may update 110 the status of the oneor more servers (e.g., identified in server group listing 152). Forexample, server status awareness process 10 may evaluate the status ofthe various servers (e.g., email server 20, instant messaging server 22,database server 24) whenever user 40 engages in an activity that mayutilize one or more of the servers (e.g., may attempt to send/receiveemail, attempt to send/receive instant messages, or attempt to open adatabase document). Additionally/alternatively, server status awarenessprocess 10 may evaluate the status of the one or more servers on aperiodic basis (e.g., at a predetermined time interval). Variousadditional/alternative arrangements for updating 110 server status maybe used.

The status of the server may be determined based upon, at least in part,either a pull or a push modality. For example, in a pull modality,server status awareness process 10 may periodically (e.g., atpredetermined time intervals, in response to a user request for serverstatus, or the like) make a request to one or more of the serversidentified 102 for the server to provide an update of the status of theserver. The server status may be known based upon a response receivedfrom the server and/or an absence of response from the server (e.g.,indicating an unavailability or problem with the server).Additionally/alternatively, in a push modality, one or more of theservers identified 102 by server status awareness process 10 mayperiodically (e.g., at a predetermined interval) send a server statusupdate to server awareness process 10 and or to a client applicationrendering a 104 the listing of servers.

Continuing with the above-stated example, if database server 24 isexperiencing a temporary outage (as noted by graphical indicator 154),server status awareness process 10 may periodically poll database server24 to evaluate the current status of database server 24. Server statusawareness process 10 may update 110 the status of database server 24 inthe server group listing 152 to provide a server status reflecting anychange in the status of database server 24 (e.g., to provide 108 acurrent status of database server 24).

The status may be provided 108 in the form of visual indicators, such asa color-coded server listing, an icon based indicator (e.g., graphicalindicator 154), and the like. For example, a healthy server may belisted in green print. A server experiencing heavy traffic may be listedin yellow print, to indicate that the server is working, but workingslowly. A server that is experiencing an outage or that is undermaintenance may be listed in red, reflecting that the server isunavailable for use. Other colors, icons, and/or graphical or visualfeatures may be used to indicate different statuses.

If the status is a server problem status, server status awarenessprocess 10 may provide 112 at least one corrective action instruction156. For example, an alternative server may be available for user toutilize in the event of a server outage, but the user may not know whichserver to use or how to access that server. Continuing with theabove-stated example, corrective action instruction 156 be provided 112,e.g., in instant messaging user interface 150. The corrective actioninstruction may, for example, provide a link for user to utilize thatwill reconfigure user's server routing. Alternatively, corrective actioninstruction 156 may include steps user may take to reconfigure theserver routing (e.g., “right click to switch to back-up server).

In addition/as an alternative to providing 112 a corrective actioninstruction 156 in instant messaging user interface 150, server statusawareness process 10 may provide 112 the at least one corrective actioninstruction in the form of a hover-over message. For example, when auser moves onscreen pointer 158 (controlled by a pointing device, suchas a mouse; not shown) over the problem server (e.g., database server24) in server group listing 152, a text box 160 may be rendered byserver status awareness process 10 and/or instant messaging clientapplication. Text box 160 may provide 112, e.g., corrective actioninstruction for user 40 to reconfigure the server routing (e.g., “rightclick to switch to back-up server”).

If the status is a server problem status, server status awarenessprocess 10 may notify 114 the user of the server problem status. Forexample, as discussed above, server status awareness process 10 and/orinstant messaging user interface may provide graphical indicator 154 ofthe server status and/or may provide 112 corrective action 156, that mayinclude the server problem status. Additionally/alternatively, serverstatus awareness process 10 notify 114 the user of the server problemstatus, e.g., using a pop-up message or to bring the server statusinterface (e.g., instant messaging user interface 150 including servergroup listing 152 and graphical indicators 154) to the top window whenserver status awareness process 10 has detected a server problem.Additionally, server status awareness process 10 may, for example, senduser 40 an instant message, email, text message, or other notice tonotify 114 user 40 of the server problem status.

When notifying 114 the user of a server problem status, server statusawareness process 10 may provide 116 at least one corrective actioninstruction. For example, instant messaging user interface 150(including server group listing 152) is brought to the top window,corrective action instruction 156 may be included in instant messaginguser interface 150.

Though server status awareness process 10 has been described asproviding corrective action instructions for a user to utilize, serverstatus awareness process 10 may reconfigure a user's server routing whena server problem is detected without troubling the user. That is, serverstatus awareness process may take the necessary corrective actions toremedy the server problem status without requiring user input or action.

Providing 108 a server status indicator and providing 116 at least onecorrective action instruction may be based upon, at least in part, userconfiguration settings. For example, the type and amount of informationprovided may include high level status information (e.g., available,unavailable) and general troubleshooting/corrective action information(e.g., fail over to alternative server). Additionally, the type andamount of information may include more detailed status and troubleshooting/corrective action information (e.g., recent log postings,server CPU statistics, and so forth). User configuration settings may beapplied by the user, may be set system wide, and/or may be set by athird party for individual users. For example, user configurationsetting for a conventional user may be set such that server statusawareness process 10 may only provide high level status and troubleshooting information, while user configuration settings for anadministrative user may provide more detailed status and troubleshooting information.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A computer implemented method comprising:analyzing, using a server status process executing on a clientelectronic device via one or more computing devices, one or more networkinteractions of a user, wherein the server status process is interfacedwith one or more client applications; identifying, via the one or morecomputing devices, one or more servers associated with the one or morenetwork interactions, including anticipating at least one server theuser will utilize and is not currently utilizing based upon, at least inpart, current application usage of the user in a usage profile;rendering, via the one or more computing devices, a listing of at leasta portion of the one or more servers in an instant messaging userinterface; evaluating the one or more servers identified as beinginteracted by the user, via the one or more computing devices, for astatus of the one or more servers on a periodic basis; providing, viathe one or more computing devices, an indicator of the status of the atleast a portion of the one or more servers via the instant messaginguser interface; providing, with the indicator of the status, at leastone corrective action instruction via the instant messaging userinterface that is selectable by the user when the status is a serverproblem status; updating by storing a recent one or more networkinteractions in the usage profile, via the one or more computingdevices, the status of the at least a portion of the one or moreservers, wherein the one or more servers reflected in the usage profilefor one user are different than the one or more servers identified foranother user in accordance with respective network interactions;removing in the usage profile, via the one or more computing devices, atleast one server from the listing of at least a portion of the one ormore servers when the at least one server has not been associated withthe recent one or more network interactions of the user after apredetermined period of non-usage of current application; and whereinthe status is provided in the form of visual indicators including acolor-coded server listing in the instant messaging user interface. 2.The method of claim 1, wherein the one or more network interactionsinclude one or more of: application usage, database usage, mail serveraccess, and instant messaging server access.
 3. The method of claim 1,wherein the color coded server listing includes a green color to show ahealthy server, a yellow color for a server that is working slowly dueto experiencing heavy traffic, and a red color for a server that isexperiencing an outage or that is under maintenance, reflecting that theserver is unavailable for use.
 4. The method of claim 1, wherein the atleast one corrective action instruction is provided in the form of ahover-over message.
 5. A computer program product residing on anon-transitory computer readable medium having a plurality ofinstructions stored thereon which, when executed by a processor, causethe processor to perform operations comprising: analyzing, using aserver status process executing on a client electronic device, one ormore network interactions of a user, wherein the server status processis interfaced with one or more client applications; identifying one ormore servers associated with the one or more network interactions,including anticipating at least one server the user will utilize and isnot currently utilizing based upon, at least in part, currentapplication usage of the user in a usage profile; rendering a listing ofat least a portion of the one or more servers in an instant messaginguser interface; evaluating the one or more servers identified as beinginteracted by the user for a status of the one or more servers on aperiodic basis; providing an indicator of the status of the at least aportion of the one or more servers via the instant messaging userinterface; providing, with the indicator of the status, at least onecorrective action instruction via the instant messaging user interfacethat is selectable by the user when the status is a server problemstatus; updating by storing a recent one or more network interactions inthe usage profile, the status of the at least a portion of the one ormore servers wherein the one or more servers reflected in the usageprofile for one user are different than the one or more serversidentified for another user in accordance with respective networkinteractions; removing in the usage profile at least one server from thelisting of at least a portion of the one or more servers when the atleast one server has not been associated with the recent one or morenetwork interactions of the user after a predetermined period ofnon-usage of current application; and wherein the status is provided inthe form of visual indicators including a color-coded server listing inthe instant messaging user interface.
 6. The computer program product ofclaim 5, wherein the one or more network interactions include one ormore of: application usage, database usage, mail server access, andinstant messaging server access.
 7. The computer program product ofclaim 5, wherein the color coded server listing includes a green colorto show a healthy server, a yellow color for a server that is workingslowly due to experiencing heavy traffic, and a red color for a serverthat is experiencing an outage or that is under maintenance, reflectingthat the server is unavailable for use.
 8. The computer program productof claim 5, wherein the at least one corrective action instruction isprovided in the form of a hover-over message.